// pages/citylist/citylist.js
const map = require("../../libs/map.js");
Page({
  /**
   * 页面的初始数据
   */
  data: {
    map: map, // 保存城市列表数据
    letter: "A", // 保存当前选中的字母
    cityname: "未选择", // 表示定位城市名
    locSuccess: false, // 保存是否已经成功定位
  },
  // 点击字母导航
  tapLetter(e) {
    let L = e.target.dataset.l; // 获取 data-l 的属性值
    this.setData({ letter: L });
  },
  // 点击城市名
  tapCity(e) {
    let city = e.target.dataset.c; // 获取 data-c 属性值  城市名
    if (city == undefined) {
      return;
    }
    // 将城市名存入 applicationCache.globalData   直接回到上一页即可
    getApp().globalData.cityname = city;
    // 自动放回上一页
    wx.navigateBack();
  },
  //   加载当前定位信息
  getLocation() {
    let QQMapWX = require("../../libs/qqmap-wx-jssdk");
    let qqmapsdk = new QQMapWX({
      key: "P73BZ-PYXLV-34WPE-UCFWX-ECGVH-POFLG",
    });
    // 逆地址解析
    qqmapsdk.reverseGeocoder({
      success: (res) => {
        // console.log("当前位置信息", res);
        let city = res.result.address_component.city;
        // console.log(city);
        this.setData({
          cityname: city,
          locSuccess: true, // 修改定位状态：定位成功
        });
      },
    });
  },
  // 点击定位城市文本
  tapLocCity() {
    if (this.data.locSuccess) {
      getApp().globalData.cityname = this.data.cityname;
      wx.navigateBack();
    } else {
      console.log("自动定位失败，弹窗提示");
      // 弹出对话框
      wx.showModal({
        title: "提示",
        content: "是否跳转到设置，重新赋予定位权限",
        success: (res) => {
          if (res.confirm) {
            // 用户点击的时确认
            wx.openSetting({
              success: (settingRes) => {
                console.log("设置结果", settingRes);
                if (settingRes.authSetting["scope.userLocation"]) {
                  // 重新赋予权限后，调用 getLocation\
                  this.getLocation();
                }
              },
            }); // 跳转到设置页
          }
        },
        fail: (err) => {
          console.warn(err);
        },
      });
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log(map);
    this.getLocation();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {},

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {},

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {},

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {},
});
